package com.tuliyou.service;

import com.tuliyou.common.util.Result;
import com.tuliyou.dto.PageInfo;
import com.tuliyou.dto.UniMajorEnrollmentDTO;
import com.tuliyou.entity.Major;
import com.tuliyou.entity.UniMajorEnrollment;
import com.tuliyou.entity.University;
import com.tuliyou.entity.User;
import com.tuliyou.request.UpdateUserRequest;

public interface AdminService {
    Result<PageInfo<User>> getUsers(Integer page, Integer size, String username, String userType, Integer isDeleted);

    Result<User> updateUser(Integer id, UpdateUserRequest updateUserRequest);





    Result<PageInfo<University>> getUniversities(Integer page, Integer size, String name, Integer uniYear, String province, String city, String level, String attribute, Integer isDeleted);

    Result<University> insertUniversity(University university);

    Result<University> updateUniversity(String universityCode, Integer uniYear, University university);





    Result<PageInfo<Major>> getMajors(Integer page, Integer size, String majorCode, String majorName, String parentCode, Integer level, String degreeType, String years, Integer isDeleted);

    Result<Major> insertMajor(Major major);

    Result<Major> updateMajor(String majorCode, Major major);





    Result<PageInfo<UniMajorEnrollment>> getUniMajorEnrollments(Integer page, Integer size, String universityCode, String majorName, Integer enrollYear, String province, String examType, String educationLevel, Integer isDeleted);

    Result<UniMajorEnrollment> insertUniMajorEnrollment(UniMajorEnrollmentDTO uniMajorEnrollmentDTO);

    Result<UniMajorEnrollment> updateUniMajorEnrollment(Integer id, UniMajorEnrollmentDTO uniMajorEnrollmentDTO);
}
